<html>
    <head>
        <title>访问EF Core Api</title>
    </head>
    <body>
        <script>
            /*
                    七、访问EF Core API

                            在大多数情况下，你希望将EF Core API隐藏在存储库后面（这是存储库模式的主要目的）。

                            但是，如果你想通过存储库访问DbContext实例，你可以使用 GetDbContext() 或 GetDbSet() 扩展方法。
                            
                            例子：

                                public async Task TestAsync()
                                {
                                    // 获取数据库上下文实例
                                    var dbContext = await _orderRepository.GetDbContextAsync();

                                    // 获取存储对应的数据库表的DbSet实例
                                    var dbSet = await _orderRepository.GetDbSetAsync();
                                    //var dbSet = dbContext.Set<Order>(); // 另外一种获取DbSet的方式

                                }

                            GetDbContextAsync返回DbContext引用而不是BookStoreDbContext。如果需要，你可以强制转换它。但是，在大多数情况下，你不需要它。

                            备注：
                                    
                                重要提示：你必须从要访问DbContext的项目中引用Volo.Abp.EntityFrameworkCore包。这会破坏封装，但在这种情况下这就是你想要的。
                */
        </script>
    </body>
</html>